Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement qir-qsim app for dynamic measurement handling #17

Open
wants to merge 32 commits into
base: main
Choose a base branch
from

Conversation

wongey
Copy link
Collaborator

@wongey wongey commented Nov 6, 2024

The implementation in this PR was authored by @vicenley , @sethrj , and @wongey with contributions from @danclaudino
and @ausbin. This provides a resolution to Issue #3.

Notes:

  • We should find a better way to handle the qsim libraries. The first build of qiree with this implementation takes a little while...
  • Both apps qir-xacc and qir-qsim have been defaulted to OFF. They have to be turned ON during cmake for the executable to be generated.
  • Docs, tests, examples are also defaulted to OFF for now.
  • The group-tuples option for qsimTuplesRuntime has been temporarily deactivated. We can reactivate after we are happy with the implementation.
  • Default number of shots is currently 1 but option --shots can be triggered as usual.
  • Currently, the output shows the results of all measurements. TODO: We should modify so that it shows the results after the final shot. (Update: DONE -- Thanks @vicenley!)
  • The teleport.ll file was modified slightly to match the one in the paper.
  • TODO: Update CI so that tests pass.

@sethrj : For this commit, I had performed a manual comparison with the files from the private repo to the most recent version of QIR-EE and the merge was smooth on my fork. However, I did NOT compare with @ausbin's recent PRs. Hopefully the conflicts will be at a minimum.

@wongey wongey requested a review from sethrj November 6, 2024 02:34
@wongey wongey mentioned this pull request Nov 6, 2024
Copy link
Member

@sethrj sethrj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the tip of the iceberg; we also need to add a unit test.

src/qirqsim/BufferManager.hh Outdated Show resolved Hide resolved

// Define a hash function for std::pair

struct pair_hash
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These classes need to be in the qiree namespace, and the buffer manager in particular should be qiree::detail in a detail subdir

src/qirqsim/CMakeLists.txt Outdated Show resolved Hide resolved
src/qirqsim/qsimQuantum.hh Outdated Show resolved Hide resolved
src/qirqsim/qsimQuantum.cc Outdated Show resolved Hide resolved
src/qirqsim/qsimQuantum.cc Outdated Show resolved Hide resolved
src/qirqsim/qsimQuantum.cc Outdated Show resolved Hide resolved
src/qirqsim/qsimQuantum.hh Outdated Show resolved Hide resolved
wongey and others added 14 commits November 25, 2024 10:00
Remark: Compares only empty output for now until we find a way to properly store the result and not just print as we go.

Temporarily using lowercase qsim. Will modify class names later with the others at the same time.
This commit will fail tests since I am documenting the file name change separately.
bell_ccx.ll to examples folder and dynamicbv.ll to test data folder
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants